home *** CD-ROM | disk | FTP | other *** search
/ Shareware Grab Bag / Shareware Grab Bag.iso / 004 / linreg.arc / LINREG.BAS (.txt)
Encoding:
GW-BASIC  |  1984-12-29  |  20.6 KB  |  620 lines

  1. 10  REM THIS PROGRAM SETS UP A MATRIX TO ENTER YOUR DATA WHICH CAN THEN BE MANIPULATED FROM A MENU AS TO MATHEMATICAL TREATMENT
  2. 19  '***************************************************************************
  3. 20  '*         BY Gregory S.Bleasdale AND James L. Bleasdale  9/25/1982        *
  4. 21  '*                      1700 BRUNSWICK RD                                  *
  5. 22  '*                      WAYNESBORO,VIRGINIA                                *
  6. 23  '*                            22980                                        *
  7. 30  '***************************************************************************
  8. 40  CLS:KEY OFF
  9. 50  DEFINT R,C,N,J,K
  10. 60  DEFDBL P,S,Z,V,I
  11. 70  OPTION BASE 1
  12. 80  DIM K$[20],A$[6],B$[6],C$[6],D$[6],E$[6],F$[6]
  13. 90  DIM G(30,4)
  14. 100  CLS: PRINT TAB(30);"MENU"
  15. 110  PRINT
  16. 120  PRINT"ENTER NEW DATA-----------------------------ENTER 'FT'"
  17. 130  PRINT"CORRECT A CURRENT VALUE--------------------ENTER 'C'"
  18. 140  PRINT"PRINTOUT EXISTING TABLE--------------------ENTER 'H'"
  19. 150  PRINT
  20. 160  PRINT"STORE EXISTING TABLE ON DISK---------------ENTER 'SD'"
  21. 170  PRINT"RETRIEVE DATA FROM DISK--------------------ENTER 'RD'"
  22. 180  PRINT"PERFORM LINEAR REGRESSION------------------ENTER 'LR'"
  23. 190  PRINT
  24. 200  PRINT"FIX THE DECIMAL PLACES---------------------ENTER 'FD'"
  25. 210  PRINT"RUN MULTIPLE REGRESSION--------------------ENTER 'MR'"
  26. 220  PRINT"RUN STATISTICS ON PAIRED DATA--------------ENTER 'PD'"
  27. 230  PRINT
  28. 240  PRINT"PRINT OUT A COPY OF STUDENTS-t TABLE-------ENTER 'T'"
  29. 250  PRINT"VIEW DATA ON CRT---------------------------ENTER 'V'"
  30. 260  P$="":LOOP=0
  31. 270  LETTER$=INKEY$: IF LETTER$="" THEN 270
  32. 280  LOOP=LOOP+1
  33. 290  IF LETTER$="C" OR LETTER$="c" OR LETTER$="V" OR LETTER$="v" OR LETTER$="H" OR LETTER$="h"  OR LETTER$="T" OR LETTER$="t" THEN P$=P$ +LETTER$ : GOTO 310
  34. 300  P$=P$+LETTER$:IF LOOP =1 THEN 270
  35. 310  IF P$="FT" OR P$="ft" THEN 440
  36. 320  IF P$="V" OR P$="v" THEN 750
  37. 330  IF P$ ="C" OR P$="c" THEN 1410
  38. 340  IF P$="FD" OR P$="fd" THEN 4510
  39. 350  IF P$ = "H" OR P$ = "h" THEN 1500
  40. 360  IF P$="SD" OR P$="sd" THEN 2030
  41. 370  IF P$="RD" OR P$="rd" THEN 2450
  42. 380  IF P$="LR" OR P$="lr" THEN 2880
  43. 390  IF P$="MR" OR P$="mr" THEN 4610
  44. 400  IF P$="PD" OR P$="pd" THEN 3790
  45. 410  IF P$="T" OR P$="t" THEN 3530
  46. 420  PRINT"INVALID COMMAND.  PRESS ANY KEY TO CONTINUE"
  47. 430  P$=INKEY$: IF P$="" THEN 430 ELSE 100
  48. 440  REM*************DATA SETUP AND ENTRY FOR SIX COLUMNS*****************
  49. 450  CLS
  50. 460  PRINT"THE MAXIMUM NUMBER OF COLUMNS THIS PROGRAM CAN HANDLE IS SIX. THE NUMBER OF ROWS IS LIMITED ONLY BY MEMORY AVAILABLE"
  51. 470  INPUT"TITLE OF TABLE ";K$
  52. 480  INPUT"HOW MANY COLUMNS WILL BE USED";C
  53. 490  INPUT"HOW MANY ROWS WILL BE USED";R
  54. 500  DIM M(R,C)
  55. 510  INPUT"THE TITLE OF THE FIRST COLUMN IS";A$
  56. 520  I=I+1
  57. 530  IF I=C THEN 670
  58. 540  INPUT"THE TITLE OF THE SECOND COLUMN IS";B$
  59. 550  I=I+1
  60. 560  IF I=C THEN GOTO 670
  61. 570  INPUT"THE TITLE OF THE THIRD COLUMN IS";C$
  62. 580  I=I+1
  63. 590   IF I=C THEN 670
  64. 600  INPUT"THE TITLE OF THE FOURTH COLUMN IS";D$
  65. 610  I=I+1
  66. 620  IF I=C THEN 670
  67. 630  INPUT"THE TITLE OF THE FIFTH COLUMN IS";E$
  68. 640  I=I+1
  69. 650  IF I=C THEN 670
  70. 660  INPUT"THE TITLE OF THE SIXTH COLUMN IS";F$
  71. 670  REM****THIS ROUTINE IS FOR ONE TO SIX COLUMN ENTRY*********
  72. 680  Y$=""
  73. 690  FOR J= 1 TO R
  74. 700  FOR K=1 TO C
  75. 710  PRINT"ENTER A VALUE FOR ROW ";J;" AND COLUMN ";K
  76. 720  INPUT M(J,K)
  77. 730  NEXT K
  78. 740  NEXT J
  79. 750  ON C GOTO 760,860,960,1070,1180,1290
  80. 760  CLS
  81. 770  PRINT TAB(6);K$
  82. 780  PRINT
  83. 790  PRINT TAB(5);A$
  84. 800  FOR J=1 TO R
  85. 810  PRINT TAB(6);M(J,1)
  86. 820  IF J MOD(20)=0 THEN PRINT"CHECK DATA ACCURACY, THEN TYPE 'CONT' TO CONTINUE" :STOP
  87. 830  NEXT J
  88. 840  INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO CHANGE ANY VALUE ENTER A 'Y'";Y$
  89. 850  IF Y$="Y" OR Y$="y" THEN GOTO 1410 ELSE 100
  90. 860  REM****ROUTINE FOR TWO COLUMNS*****
  91. 870  CLS:Y$=""
  92. 880  PRINT TAB(20);K$
  93. 890  PRINT TAB(5);A$;TAB(25);B$
  94. 900  FOR J=1 TO R
  95. 910  PRINT M(J,1);TAB(25);M(J,2)
  96. 920  IF J MOD(20)=0 THEN PRINT"CHECK DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP
  97. 930  NEXT J
  98. 940  INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CHANGE THEN ENTER A 'Y'";Y$
  99. 950  IF Y$="Y" OR Y$="y" THEN GOTO 1410 ELSE 100
  100. 960  CLS:Y$=""
  101. 970  REM*******ROUTINE TO DISPLAY 3 COLUMNS****
  102. 980  PRINT TAB(24);K$
  103. 990  PRINT
  104. 1000  PRINT TAB(5);A$;TAB(25);B$;TAB(45);C$
  105. 1010  FOR J=1 TO R
  106. 1020  PRINT TAB(5);M(J,1);TAB(25);M(J,2);TAB(45);M(J,3)
  107. 1030  IF J MOD(20)=0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP
  108. 1040  NEXT J
  109. 1050  INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO CHANGE AN ITEM THEN ENTER A 'Y'";Y$
  110. 1060  IF Y$="Y" OR Y$="y" THEN 1410 ELSE 100
  111. 1070  REM*****ROUTINE FOR FOUR COLUMN DISPLAY*****
  112. 1080  CLS:Y$=""
  113. 1090  PRINT TAB(35);K$
  114. 1100  PRINT
  115. 1110  PRINT TAB(3);A$;TAB(20);B$;TAB(40);C$;TAB(60);D$
  116. 1120  FOR J=1 TO R
  117. 1130  PRINT TAB(2);M(J,1);TAB(20);M(J,2);TAB(40);M(J,3);TAB(60);M(J,4)
  118. 1140  IF J MOD 20 =0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP
  119. 1150  NEXT J
  120. 1160  INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CHANGE THEN ENTER A 'Y'";Y$
  121. 1170  IF Y$="Y" OR Y$="y" THEN 1410 ELSE 100
  122. 1180  REM******ROUTINE TO DISPLAY FIVE COLUMNS OF DATA*****
  123. 1190  CLS:Y$=""
  124. 1200  PRINT TAB(40);K$
  125. 1210  PRINT
  126. 1220  PRINT TAB(2);A$;TAB(20);B$;TAB(35);C$;TAB(50);D$;TAB(65);E$
  127. 1230  FOR J=1 TO R
  128. 1240  PRINT TAB(2);M(J,1);TAB(20);M(J,2);TAB(35);M(J,3);TAB(50);M(J,4);TAB(65);M(J,5)
  129. 1250  IF J MOD 20=0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP
  130. 1260  NEXT J
  131. 1270  INPUT"IF THE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CORRECTION THEN ENTER A 'Y'";Y$
  132. 1280  IF Y$="Y" OR Y$="y" THEN GOTO 1410 ELSE 100
  133. 1290  CLS:Y$=""
  134. 1300  PRINT TAB(40);K$
  135. 1310  PRINT
  136. 1320  PRINT TAB(2);A$;TAB(15);B$;TAB(28);C$;TAB(41);D$;TAB(54);E$;TAB(67);F$
  137. 1330  PRINT
  138. 1340  FOR J=1 TO R
  139. 1350  PRINT M(J,1);TAB(13);M(J,2);TAB(26);M(J,3);TAB(39);M(J,4);TAB(52);M(J,5);TAB(65);M(J,6)
  140. 1360  IF J MOD(20)=0 THEN PRINT"CHECK THE DATA FOR ACCURACY, THEN TYPE 'CONT' AND ENTER TO CONTINUE":STOP
  141. 1370  NEXT J
  142. 1380  PRINT
  143. 1390  INPUT"IF THE ABOVE DATA ARE NOT CORRECT AND YOU WANT TO MAKE A CHANGE  ENTER 'Y'";Y$
  144. 1400  IF Y$="Y" OR Y$="y" THEN FGOTO 7800 ELSE 100
  145. 1410   REM*****************CHANGE A WRONG ENTRY VALUE***********************
  146. 1420  CLS :Y$=""
  147. 1430  PRINT"THIS ROUTINE WILL ALLOW YOU TO CORRECT A WRONG VALUE IN YOUR TABLE OF DATA"
  148. 1440  INPUT"WHAT COLUMN NUMBER IS THE ITEM IN";C1
  149. 1450  INPUT"WHAT ROW NUMBER IS THE ITEM TO BE CHANGED";R1
  150. 1460  INPUT"WHAT IS THE NEW VALUE";V1
  151. 1470  M(R1,C1)=V1
  152. 1480  INPUT"IF YOU WISH TO CHANGE ANOTHER VALUE ENTER 'Y'";Y$
  153. 1490  IF Y$="Y" OR Y$="y" THEN 1410 ELSE 100
  154. 1500  REM********ROUTINE TO PRINT HARD COPY FOR ONE COLUMN******
  155. 1510  PRINT"TURN ON PRINTER AND PAPER,THEN PRESS ANY KEY"
  156. 1520  R$=INKEY$:IF R$="" THEN 1520
  157. 1530  INPUT"ENTER THE NUMBER OF ROWS AND COLUMNS IN THE DATA";R,C
  158. 1540  ON C GOTO 1550,1630,1710,1790,1870,1950
  159. 1550  REM*****PRINT ROUTINE FOR ONE COLUMN*****
  160. 1560  LPRINT TAB(10);K$
  161. 1570  LPRINT
  162. 1580  LPRINT TAB(8);A$
  163. 1590  FOR J=1 TO R
  164. 1600  LPRINT TAB(8);M(J,1)
  165. 1610  NEXT J
  166. 1620  GOTO 100
  167. 1630  REM*****ROUTINE TO PRINT TWO COLUMNS****
  168. 1640  LPRINT TAB(15);K$
  169. 1650  LPRINT
  170. 1660  LPRINT TAB(5);A$;TAB(25);B$
  171. 1670  FOR J=1 TO R
  172. 1680  LPRINT TAB(5);M(J,1);TAB(25);M(J,2)
  173. 1690  NEXT J
  174. 1700  GOTO 100
  175. 1710  REM*****PRINT ROUTINE FOR THREE COLUMNS******
  176. 1720  LPRINT TAB(20);K$
  177. 1730  LPRINT
  178. 1740  LPRINT TAB(5);A$;TAB(20);B$;TAB(35);C$
  179. 1750  FOR J=1 TO R
  180. 1760  LPRINT TAB(5);M(J,1);TAB(20);M(J,2);TAB(35);M(J,3)
  181. 1770  NEXT J
  182. 1780  GOTO 100
  183. 1790  REM*****PRINT ROUTINE FOR FOUR COLUMNS******
  184. 1800  LPRINT TAB(25);K$
  185. 1810  LPRINT
  186. 1820  LPRINT TAB(10);A$;TAB(25);B$;TAB(40);C$;TAB(55);D$
  187. 1830  FOR J=1 TO R
  188. 1840  LPRINT TAB(10);M(J,1);TAB(25);M(J,2);TAB(40);M(J,3);TAB(55);M(J,4)
  189. 1850  NEXT J
  190. 1860  GOTO 100
  191. 1870  REM*****PRINT ROUTINE FOR FIVE COLUMNS*******
  192. 1880  LPRINT TAB(30);K$
  193. 1890  LPRINT
  194. 1900  LPRINT TAB(5);A$;TAB(20);B$;TAB(35);C$;TAB(50);D$;TAB(65);E$
  195. 1910  FOR J=1 TO R
  196. 1920  LPRINT TAB(5);M(J,1);TAB(20);M(J,2);TAB(35);M(J,3);TAB(50);M(J,4);TAB(65);M(J,5)
  197. 1930  NEXT J
  198. 1940  GOTO 100
  199. 1950  REM*****PRINT ROUTINE FOR SIX COLUMNS*****
  200. 1960  LPRINT TAB(40);K$
  201. 1970  LPRINT
  202. 1980  LPRINT TAB(5);A$;TAB(17);B$;TAB(29);C$;TAB(41);D$;TAB(53);E$;TAB(65);F$
  203. 1990  FOR J=1 TO R
  204. 2000  LPRINT TAB(5);M(J,1);TAB(17);M(J,2);TAB(29);M(J,3);TAB(41);M(J,4);TAB(53);M(J,5);TAB(65);M(J,6)
  205. 2010  NEXT J
  206. 2020  GOTO 100
  207. 2030  REM******ROUTINE TO STORE DATA ONTO DISK*********
  208. 2040  INPUT"HOW MANY ROWS AND COLUMNS ARE TO BE STORED";R,C
  209. 2050  INPUT"WHAT NAME DO YOU WANT TO USE FOR FILING";N$
  210. 2060  OPEN "O",#1,N$
  211. 2070  WRITE #1,K$
  212. 2080  ON C GOTO 2090,2150,2210,2270,2330,2390
  213. 2090  WRITE #1,A$
  214. 2100  FOR J=1 TO R
  215. 2110  WRITE #1,M(J,1)
  216. 2120  NEXT J
  217. 2130  CLOSE #1
  218. 2140  GOTO 100
  219. 2150  WRITE #1,A$,B$
  220. 2160  FOR J=1 TO R
  221. 2170  WRITE #1,M(J,1),M(J,2)
  222. 2180  NEXT J
  223. 2190  CLOSE #1
  224. 2200  GOTO 100
  225. 2210  WRITE #1,A$,B$,C$
  226. 2220  FOR J=1 TO R
  227. 2230  WRITE #1,M(J,1),M(J,2),M(J,3)
  228. 2240  NEXT J
  229. 2250  CLOSE #1
  230. 2260  GOTO 100
  231. 2270  WRITE #1,A$,B$,C$,D$
  232. 2280  FOR J=1 TO R
  233. 2290  WRITE #1,M(J,1),M(J,2),M(J,3),M(J,4)
  234. 2300  NEXT J
  235. 2310  CLOSE #1
  236. 2320  GOTO 100
  237. 2330  WRITE #1,A$,B$,C$,D$,E$
  238. 2340  FOR J=1 TO R
  239. 2350  WRITE #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5)
  240. 2360  NEXT J
  241. 2370  CLOSE #1
  242. 2380  GOTO 100
  243. 2390  WRITE #1,A$,B$,C$,D$,E$,F$
  244. 2400  FOR J=1 TO R
  245. 2410  WRITE #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5),M(J,6)
  246. 2420  NEXT J
  247. 2430  CLOSE #1
  248. 2440  GOTO 100
  249. 2450  REM******ROUTINE TO READ DATA FROM DISK FILE**********
  250. 2455  CLS:PRINT"PUT DISK WITH TABLE OF DATA IN DRIVE A"
  251. 2460  INPUT"HOW MANY ROWS AND COLUMNS WERE USED IN THE FILE";R,C
  252. 2470  DIM M(R,C)
  253. 2480  INPUT"WHAT NAME WAS USED FOR THE FILE";N$
  254. 2490  OPEN "I",#1,N$
  255. 2500  INPUT #1,K$
  256. 2510  ON C GOTO 2520,2580,2640,2700,2760,2820
  257. 2520  INPUT #1,A$
  258. 2530  FOR J=1 TO R
  259. 2540  INPUT #1,M(J,1)
  260. 2550  NEXT J
  261. 2560  IF EOF(1) THEN CLOSE #1
  262. 2570  GOTO 100
  263. 2580  INPUT #1,A$,B$
  264. 2590  FOR J=1 TO R
  265. 2600  INPUT #1,M(J,1),M(J,2)
  266. 2610  NEXT J
  267. 2620  IF EOF(1) THEN CLOSE #1
  268. 2630  GOTO 100
  269. 2640  INPUT #1,A$,B$,C$
  270. 2650  FOR J=1 TO R
  271. 2660  INPUT #1,M(J,1),M(J,2),M(J,3)
  272. 2670  NEXT J
  273. 2680  IF EOF(1) THEN CLOSE #1
  274. 2690  GOTO 100
  275. 2700  INPUT #1,A$,B$,C$,D$
  276. 2710  FOR J=1 TO R
  277. 2720  INPUT #1,M(J,1),M(J,2),M(J,3),M(J,4)
  278. 2730  NEXT J
  279. 2740  IF EOF(1) THEN CLOSE #1
  280. 2750  GOTO 100
  281. 2760  INPUT #1,A$,B$,C$,D$,E$
  282. 2770  FOR J=1 TO R
  283. 2780  INPUT #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5)
  284. 2790  NEXT J
  285. 2800  IF EOF(1) THEN CLOSE #1
  286. 2810  GOTO 100
  287. 2820  INPUT #1,A$,B$,C$,D$,E$,F$
  288. 2830  FOR J=1 TO R
  289. 2840  INPUT #1,M(J,1),M(J,2),M(J,3),M(J,4),M(J,5),M(J,6)
  290. 2850  NEXT J
  291. 2860  IF EOF(1) THEN CLOSE #1
  292. 2870  GOTO 100
  293. 2880  REM*************ROUTINE TO DO LINEAR REGRESSION********
  294. 2890  Y1=0:Y2=0:X1=0:X2=0:Z=0:Z1=0:Z2=0:Z3=0:Z4=0:Z5=0:Z6=0:Z7=0:Z8=0:Z9=0:N=0
  295. 2900  C2=0:C3=0:D=0:CLS:RESTORE
  296. 2910  PRINT"THIS ROUTINE WILL LET YOU RUN A LINEAR REGRESSION ON ANY TWO COLUMNS OF DATA IN YOUR TABLE WITH OR WITHOUT A ROW DISPLACEMENT.":PRINT:PRINT
  297. 2920  INPUT"WHICH COLUMN IS THE INDEPENDENT VARIABLE(X)";C3
  298. 2930  INPUT"WHICH COLUMN IS THE DEPENDENT VARIABLE(Y)";C2
  299. 2940  INPUT"WHAT IS THE ROW DISPLACEMENT YOU WANT TO USE";D
  300. 2955  CLS:PRINT"------HOLD FOR MENTAL WORK----"
  301. 2960  FOR J=1 TO R
  302. 2980  Y=M(J,C2)
  303. 2981  K=J+D
  304. 2982  IF K>R THEN GOTO 3090
  305. 2990  X=M(K,C3)
  306. 3010  IF X=0 OR Y=0 THEN 3080
  307. 3020  Y1=Y1+Y                                   'SUM (Y)
  308. 3030  X1=X1+X                                   'SUM(X)
  309. 3040  Y2=Y2+Y*Y                                 'SUM (Y^2)
  310. 3050  X2=X2+X*X                                 'SUM (X^2)
  311. 3060  Z=Z+Y*X                                   'SUM (YX)
  312. 3070  N=N+1                                     'SUM N
  313. 3080  NEXT J
  314. 3090  Z1=Y1/N                                   'Y-BAR
  315. 3100  Z2=X1/N                                   'X-BAR
  316. 3110  Z3=Y2-Y1*Y1/N                             'S(Y^2)
  317. 3120  Z4=X2-X1*X1/N                             'S(X^2)
  318. 3130  Z5=Z-Y1*X1/N                              'S(YX)
  319. 3140  Z6=Z5/Z4                                  'SLOPE
  320. 3150  Z7=Z1-Z6*Z2                               'INTERCEPT
  321. 3160  Z8=Z3-Z6*Z5/(N-2)                         'VARIANCE
  322. 3170  Z9=(Z5*Z5)/(Z4*Z3)                           'CORRELATION(R^2)
  323. 3180  PRINT"LINEAR REGRESSION DATA ON COLUMNS ";C2;"AND ";C3;" WITH ";D;" DISPLACEMENT"
  324. 3190  PRINT"THE AVERAGE OF COLUMN ";C2;" IS=";Z1
  325. 3200  PRINT"THE AVERAGE OF COLUMN ";C3;" IS=";Z2
  326. 3210  PRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";SQR(Z3/(N-1))
  327. 3220  PRINT"THE STANDARD DEVIATION OF COLUMN ";C3;" IS=";SQR(Z4/(N-1))
  328. 3230  PRINT"THE SLOPE OF THE REGRESSION IS=";Z6
  329. 3240  PRINT"THE INTERCEPT OF THE REGRESSION IS=";Z7
  330. 3250  PRINT"THE TOTAL VARIANCE IS=";Z8
  331. 3260  PRINT"THE CORRELATION (R^2)=";Z9
  332. 3270  PRINT"THE DEGREES OF FREEDOM ARE=";(N-1)
  333. 3280  PRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:"
  334. 3290  PRINT"Y=";Z7;"+";Z6;"*X"
  335. 3300  INPUT"DO YOU WANT TO PRINT A HARD COPY OF THIS DATA (Y/N)";W$
  336. 3310  IF W$="Y" OR W$="y" THEN GOTO 3320 ELSE 100
  337. 3320  PRINT"TURN ON THE PRINTER------PRESS CONT(K5)"
  338. 3330  LPRINT"LINEAR REGRESSION DATA ON COLUMNS ";C2;" AND";C3;" WITH ";D;" DISPLACEMENT OF ROWS"
  339. 3340  LPRINT"THE AVERAGE OF COLUMN ";C2;" IS=";Z1
  340. 3350  LPRINT"THE AVERAGE OF COLUMN ";C3;" IS=";Z2
  341. 3360  LPRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";SQR(Z3/(N-1))
  342. 3370  LPRINT"THE STANDARD DEVIATION OF COLUMN ";C3;" IS=";SQR(Z4/(N-1))
  343. 3380  LPRINT"THE SLOPE OF THE REGRESSION IS=";Z6
  344. 3390  LPRINT"THE INTERCEPT OF THE REGRESSION IS=";Z7
  345. 3400  LPRINT"THE TOTAL VARIANCE IS=";Z8
  346. 3410  LPRINT"THE CORRELATION(R^2) IS=";Z9
  347. 3420  LPRINT"THE DEGREES OF FREEDOM ARE=";N-1
  348. 3430  LPRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:"
  349. 3440  LPRINT"Y=";Z7;"+";Z6;"*X"
  350. 3450  GOTO 100
  351. 3530  REM*******THIS ROUTINE WILL PRINTOUT A COPY OF THE STUDENTS-t TABLE
  352. 3535  PRINT"TURN ON YOUR PRINTER THEN TYPE CONT AND ENTER WHEN READY.":STOP
  353. 3536  CLS
  354. 3540  RESET
  355. 3550  FOR J= 1 TO 30
  356. 3560  FOR K=1 TO 4
  357. 3570  READ X
  358. 3580  G(J,K)=X
  359. 3590  NEXT K
  360. 3600  NEXT J
  361. 3610  LPRINT TAB(30);"STUDENTS-T TABLE"
  362. 3620  LPRINT
  363. 3630  LPRINT TAB(5);"DF";TAB(25);"90%";TAB(45);"95%";TAB(65);"99%"
  364. 3640  LPRINT
  365. 3650  FOR J= 1 TO 30
  366. 3660  LPRINT TAB(5);G(J,1);TAB(25);G(J,2);TAB(45);G(J,3);TAB(65);G(J,4)
  367. 3670  NEXT J
  368. 3680  FOR X=1 TO 10000:NEXT X:GOTO 100
  369. 3690  GOTO 100
  370. 3700  DATA 1,6.314,12.706,63.657,2,2.920,4.303,9.925,3,2.353,3.182,5.841,4,2.132
  371. 3710  DATA 2.776,4.604,5,2.015,2.571,4.032,6,1.943,2.447,3.707,7,1.895,2.365
  372. 3720  DATA 3.499,8,1.860,2.306,3.355,9,1.833,2.262,3.250,10,1.812,2.228,3.169
  373. 3730  DATA 11,1.796,2.201,3.106,12,1.782,2.179,3.055,13,1.771,2.16,3.012,14,1.761
  374. 3740   DATA 2.145,2.977,15,1.753,2.131,2.947,16,1.746,2.120,2.921,17,1.740,2.110,2.898
  375. 3750   DATA 18,1.734,2.101,2.878,19,1.729,2.093,2.861,20,1.725,2.086,2.845,21,1.721
  376. 3760   DATA 2.080,2.831,22,1.717,2.074,2.819,23,1.714,2.069,2.807,24,1.711,2.064,2.797
  377. 3770  DATA 25,1.708,2.060,2.787,26,1.706,2.056,2.779,27,1.703,2.056,2.771
  378. 3780  DATA 28,1.701,2.048,2.763,29,1.699,2.045,2.756,30,1.697,2.042,2.750
  379. 3790  REM******ROUTINE TO RUN STATISTICS ON PAIRED DATA*******
  380. 3800  W1=0:W2=0:W3=0:W4=0:W5=0:W6=0:W7=0:N=0
  381. 3810  RESTORE:CLS
  382. 3820  INPUT "WHICH TWO COLUMNS DO YOU WANT PAIRED STATS ON?(ENTER BOTH)",C1,C2
  383. 3830  FOR J=1 TO R
  384. 3840  X=M(J,C1)
  385. 3850  Y=M(J,C2)
  386. 3860  IF X=0 OR Y=0 THEN GOTO 3950
  387. 3870  W1=ABS(X-Y)           'DELTA
  388. 3880  W2=W2+W1          'SUM DELTA
  389. 3890  W3=W3+W1*W1       'SUM DELTA SQ
  390. 3900  W4=W4+X           'SUM X
  391. 3910  W5=W5+Y           'SUM Y
  392. 3920  W6=W6+X*X         'SUM X SQ
  393. 3930  W7=W7+Y*Y         'SUM Y SQ
  394. 3940  N=N+1             'SUM NUMBER OF ITEMS
  395. 3950  NEXT J
  396. 3960  W=W3-W2*W2/N
  397. 3970  S=(W2/N)/SQR(W/(N*N-N))
  398. 3980  S1=SQR((W6-W4*W4/N)/(N-1))
  399. 3990  S2=SQR((W7-W5*W5/N)/(N-1))
  400. 4000  S3=W4/N
  401. 4010  S4=W5/N
  402. 4020  INPUT"HOW MANY DECIMAL PLACES DO YOU WANT PRINTED";D
  403. 4030  PRINT"THE DEGREES OF FREEDOM FOR THE TWO PAIRED COLUMNS IS=";N-1
  404. 4040  PRINT "THE STANDARD DEVIATION OF COLUMN ";C1;" IS ";INT(S1*10^D+0.5)/10^D
  405. 4050  PRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";INT(S2*10^D+0.5)/10^D
  406. 4060  PRINT"THE AVERAGE OF COLUMN ";C1;" IS=";INT(S3*10^D+0.5)/10^D
  407. 4070  PRINT"THE AVERAGE OF COLUMN ";C2;" IS=";INT(S4*10^D+0.5)/10^D
  408. 4080  PRINT"STUDENTS-t FOR THE PAIRED COLUMNS IS=";INT(S*10^3+0.5)/10^3
  409. 4090  FOR J=1 TO 30
  410. 4100  FOR K=1 TO 4
  411. 4110  READ X
  412. 4120  G(J,K)=X
  413. 4130  NEXT K
  414. 4140  NEXT J
  415. 4150  X1=G(N-1,2)
  416. 4160  X2=G(N-1,3)
  417. 4170  X3=G(N-1,4)
  418. 4180  IF S<X1 THEN 4230
  419. 4190  IF S<X2 THEN 4250
  420. 4200  IF S<X3 THEN 4260
  421. 4210  PRINT"THE DATA SHOW 99%CONFIDENCE THAT COLUMN ";C1;"AND";C2;"ARE STATISTICALLY DIFFERENT"
  422. 4220  GOTO 4270
  423. 4230  PRINT"THE DATA SHOW 90%CONFIDENCE THAT COLUMN ";C1;"AND";C2;"ARE NOT STATISTICALLY DIFFERENT"
  424. 4240  GOTO 4270
  425. 4250  PRINT"THE DATA SHOW 90%CONFIDENCE THAT COLUMN ";C1;" AND";C2;"ARE STATISTICALLY DIFFERENT"
  426. 4260  PRINT"THE DATA SHOW 95%CONFIDENCE THAT COLUMN "C1;" AND";C2;" ARE STATISTICALLY DIFFERENT"
  427. 4270  INPUT"DO YOU WANT A HARD COPY OF THE ABOVE DATA?(Y/N)";Y$
  428. 4280  IF Y$="Y" OR Y$="y" THEN GOSUB 4320
  429. 4290  Y$=""
  430. 4300  INPUT"DO YOU WANT TO REPEAT STATS ON DIFFERENT COLUMNS?(Y/N)";Y$
  431. 4310  IF Y$="Y" OR Y$="y" THEN 3790 ELSE 100
  432. 4320  REM*****PRINT STATS****
  433. 4330  LPRINT"THE STATISTICS OF PAIRED DATA USING COLUMNS ";C1;" AND ";C2;"ARE:"
  434. 4340  LPRINT"THE DEGREES OF FREEDOM ARE=";(N-1)
  435. 4350  LPRINT"THE STANDARD DEVIATION OF COLUMN ";C1;" IS=";INT(S1*10^D+0.5)/10^D
  436. 4360  LPRINT"THE STANDARD DEVIATION OF COLUMN ";C2;" IS=";INT(S2*10^D+0.5)/10^D
  437. 4370  LPRINT"THE AVERAGE OF COLUMN ";C1;" IS=";INT(S3*10^D+0.5)/10^D
  438. 4380  LPRINT"THE AVERAGE OF COLUMN ";C2;" IS=";INT(S4*10^D+0.5)/10^D
  439. 4390  LPRINT"THE STUDENTS-t FOR THE PAIRED DATA IS=";INT(S*10^D+0.5)/10^D
  440. 4400  IF S<X1 THEN 4450
  441. 4410  IF S<X2 THEN 4470
  442. 4420  IF S<X3 THEN 4490
  443. 4430  LPRINT"THE DATA SHOW 99% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;" ARE STATISTICALLY DIFFERENT."
  444. 4440  RETURN
  445. 4450  LPRINT"THE DATA SHOW 90% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;"ARE NOT STATISTICALLY DIFFERENT"
  446. 4460  RET
  447. 4470  LPRINT"THE DATA SHOW 90% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;" ARE STATISTICALLY DIFFERENT"
  448. 4480  RET
  449. 4490  LPRINT"THE DATA SHOW 95% CONFIDENCE THAT COLUMN ";C1;" AND ";C2;" ARE STATISTICALLY DIFFERENT"
  450. 4500  RET
  451. 4510  REM***ROUTINE TO FIX THE DECIMAL PLACES**********
  452. 4512  PRINT:PRINT
  453. 4520  INPUT"HOW MANY DECIMAL PLACES DO YOU DESIRE IN THE PRINTOUT?",D
  454. 4530  INPUT"HOW MANY ROWS AND COLUMNS ARE IN THE TABLE?";R,C
  455. 4540  FOR J=1 TO R
  456. 4550  FOR K=1 TO C
  457. 4560  X=M(J,K)
  458. 4570  Y=(INT(X*10^D+0.5))/10^D
  459. 4575  M(J,K)=Y
  460. 4580  NEXT K
  461. 4590  NEXT J
  462. 4600  GOTO 100
  463. 4610  REM*****MULTIPLE REGRESSION******
  464. 4620  Z=0:Z1=0:Z2=0:Z3=0:Z4=0:Z5=0:Z6=0:Z7=0:Z8=0:Z9=0:Z10=0:Z11=0:Z12=0:Z13=0:N=0:C9=0:C1=0:C2=0:C3=0
  465. 4630  Y$="":CLS
  466. 4640  PRINT"THIS ROUTINE WILL DO MULTIPLE REGRESSION ON DATA ALREADY IN"
  467. 4642  PRINT"MEMORY IN MATRIX FORM FROM A NEW ENTRY OR FROM DISK RECALL"
  468. 4643  PRINT:PRINT
  469. 4650  INPUT"DO YOU WANT TO ELIMINATE ROWS CONTAINING NULL DATA?(Y/N)";Y$
  470. 4660  INPUT"HOW MANY TOTAL COLUMNS ARE TO BE USED?";C9
  471. 4670  INPUT"WHICH COLUMN IS TO BE THE 'Y' VARIABLE?";C1
  472. 4680  INPUT"WHICH COLUMN IS TO BE THE FIRST INDEPENDENT VARIABLE?";C2
  473. 4690  INPUT"WHICH COLUMN IS TO BE THE SECOND INDEPENDENT VARIABLE?";C3
  474. 4700  IF C9=3 THEN 4720
  475. 4710  INPUT"WHICH COLUMN IS TO BE THE THIRD INDEPENDENT VARIABLE?";C4
  476. 4720  CLS:PRINT"---------WAIT FOR CALCULATIONS----------"
  477. 4730  FOR J=1 TO R
  478. 4740  Y=M(J,C1)
  479. 4750  X1=M(J,C2)
  480. 4760  X2=M(J,C3)
  481. 4770  IF C9=3 THEN 4790
  482. 4780  X3=M(J,C4)
  483. 4790  IF Y$="N" OR Y$="n" THEN 4840
  484. 4800  IF C9=4 THEN 4830
  485. 4810  IF Y=0 OR X1=0 OR X2=0 THEN 5000
  486. 4820  IF C9=3 THEN 4840
  487. 4830  IF Y=0 OR X1=0 OR X2=0 OR X3=0 THEN 5000
  488. 4840  Z=Z+Y
  489. 4850  Z1=Z1+X1
  490. 4860  Z2=Z2+X2
  491. 4870  Z3=Z3+Y*Y
  492. 4880  Z4=Z4+X1*X1
  493. 4890  Z5=Z5+X2*X2
  494. 4900  Z6=Z6+X1*Y
  495. 4910  Z7=Z7+Y*X2
  496. 4920  Z8=Z8+X1*X2
  497. 4930  IF C9=3 THEN 4990
  498. 4940  Z9=Z9+Y*X3
  499. 4950  Z10=Z10+X1*X3
  500. 4960  Z11=Z11+X2*X3
  501. 4970  Z12=Z12+X3*X3
  502. 4980  Z13=Z13+X3
  503. 4990  N=N+1
  504. 5000  NEXT J
  505. 5010  S1=Z3-Z*Z/N                'S(Y^2)
  506. 5020  S2=Z4-Z1*Z1/N              'S(X1^2)
  507. 5030  S3=Z5-Z2*Z2/N              'S(X2^2)
  508. 5040  S4=Z6-Z*Z1/N               'S(YX1)
  509. 5050  S5=Z7-Z*Z2/N               'S(YX2)
  510. 5060  S6=Z8-Z1*Z2/N              'S(X1X2)
  511. 5070  IF C9=3 THEN 5120
  512. 5080  S7=Z9-Z*Z13/N              'S(YX3)
  513. 5090  S8=Z10-Z1*Z13/N            'S(X1X3)
  514. 5100  S9=Z11-Z2*Z13/N            'S(X2X3)
  515. 5110  S10=Z12-Z13*Z13/N          'S(X3^2)
  516. 5120  YAVE=Z/N                   'AVE Y
  517. 5130  X1AVE=Z1/N                 'AVE X1
  518. 5140  X2AVE=Z2/N                 'AVE X2
  519. 5150  X3AVE=Z13/N
  520. 5160  IF C9=4 GOTO 5310
  521. 5170  INV=S2*S3-S6*S6       'MATRIX INVERSE FOR C=3
  522. 5180  SLOPE1=(S4*S3-S5*S6)/INV
  523. 5190  SLOPE2=(S5*S2-S4*S6)/INV
  524. 5200  INTERCEPT=YAVE-SLOPE1*X1AVE-SLOPE2*X2AVE
  525. 5210  VARY=(S1-SLOPE1*S4-SLOPE2*S5)/(N-3)
  526. 5220  SDEVY=SQR(VARY)
  527. 5230  SDEVB1=SDEVY*SQR(S3/INV)
  528. 5240  SDEVB2=SDEVY*SQR(S2/INV)
  529. 5250  SORRB1=SLOPE1*S4/S1
  530. 5260  SORRB2=SLOPE2*S5/S1     'R^2OF X2
  531. 5270  SORRY=ABS(SORRB1)+ABS(SORRB2)
  532. 5280  STB1=SLOPE1*SQR(S2/VARY)
  533. 5290  STB2=SLOPE2*SQR(S3/VARY)
  534. 5300  IF C9=3 THEN 5570
  535. 5310  INV=S2*S3*S10-S2*S9*S9-S6*S6*S10+2*S6*S8*S9-S8*S8*S3  'INVERSE FOR C=4
  536. 5320  P11=(S3*S10-S9*S9)/INV
  537. 5330  P12=(S8*S9-S6*S10)/INV
  538. 5340  P13=(S6*S9-S8*S3)/INV
  539. 5350  P22=(S2*S10-S8*S8)/INV
  540. 5360  P23=(S6*S8-S2*S9)/INV
  541. 5370  P33=(S2*S3-S6*S6)/INV
  542. 5380  SLOPE1=S4*P11+S5*P12+S7*P13
  543. 5390  SLOPE2=S4*P12+S5*P22+S7*P23
  544. 5400  SLOPE3=S4*P13+S5*P23+S7*P33
  545. 5410  INTERCEPT=YAVE-SLOPE1*X1AVE-SLOPE2*X2AVE-SLOPE3*X3AVE
  546. 5420  VARY=(S1-SLOPE1*S4-SLOPE2*S5-SLOPE3*S7)/(N-4)
  547. 5430  VARB1=VARY*P11
  548. 5440  VARB2=VARY*P22
  549. 5450  VARB3=VARY*P33
  550. 5460  SDEVY=SQR(VARY)
  551. 5470  SDEVB1=SQR(VARB1)
  552. 5480  SDEVB2=SQR(VARB2)
  553. 5490  SDEVB3=SQR(VARB3)
  554. 5500  STB1=SLOPE1/SDEVB1
  555. 5510  STB2=SLOPE2/SDEVB2
  556. 5520  STB3=SLOPE3/SDEVB3
  557. 5530  SORRB1=S4*S4/(S1*S2)
  558. 5540  SORRB2=S5*S5/(S1*S3)
  559. 5550  SORRB3=S7*S7/(S1*S10)
  560. 5560  SORRY=ABS(SORRB1)+ABS(SORRB2)+ABS(SORRB3)
  561. 5570  IF C9=3 THEN PRINT"Y=COLUMN ";C1;",X1=COLUMN ";C2;",X3= COLUMN ";C3
  562. 5580  IF C9=4 THEN PRINT"Y=COLUMN ";C1;",X1=COLUMN ";C2;" ,X2=COLUMN ";C3;",X3=COLUMN ";C4
  563. 5590  PRINT"AVERAGE Y VALUE=";YAVE
  564. 5600  PRINT"AVERAGE X1 VALUE=";X1AVE
  565. 5610  PRINT"AVERAGE X2 VALUE=";X2AVE
  566. 5620  IF C9=4 THEN PRINT"AVERAGE X3 VALUE=";X3AVE
  567. 5630  PRINT"SLOPE B1=";SLOPE1
  568. 5640  PRINT "SLOPE B2=";SLOPE2
  569. 5650  IF C9=4 THEN PRINT"SLOPE B3=";SLOPE3
  570. 5660  PRINT"VARIANCE OF (Y)=";VARY
  571. 5670  PRINT"STANDARD DEVIATION OF Y=";SDEVY
  572. 5680  PRINT"STANDARD DEVIATION OF B1=";SDEVB1
  573. 5690  PRINT"STANDARD DEVIATION OF B2=";SDEVB2
  574. 5700  IF C9=4 THEN PRINT"STANDARD DEVIATION OF B3=";SDEVB3
  575. 5710  PRINT"CORRELATION(R^2) OF X1=";SORRB1
  576. 5720  PRINT"CORRELATION(R^2) OF X2=";SORRB2
  577. 5730  IF C9=4 THEN PRINT"CORRELATION(R^2) OF X3=";SORRB3
  578. 5740  PRINT "TOTAL CORRELATION (R^2) OF Y=";SORRY
  579. 5750  PRINT"STUDENTS-t OF B1=";STB1
  580. 5760  PRINT"STUDENTS-t OF B2=";STB2
  581. 5770  IF C9=4 THEN PRINT"STUDENTS-t OF B3="STB3
  582. 5780  IF C9=3 THEN PRINT"DEGREES OF FREEDOM ARE=";N-3
  583. 5790  IF C9=4 THEN PRINT"DEGREES OF FREEDOM ARE=";N-4
  584. 5800  PRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:"
  585. 5810  IF C9=3 THEN PRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2"
  586. 5820  IF C9=4 THEN PRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2+";SLOPE3;"*X3"
  587. 5830  INPUT"DO YOU WANT A HARD COPY OF THE RESULTS(Y/N)?";Y$
  588. 5840  IF Y$="N" OR Y$="n" THEN 100
  589. 5850  PRINT"TURN ON THE PRINTER AND PRESS KEY F5":STOP
  590. 5860  IF C9=3 THEN LPRINT"Y=COLUMN ";C1;", X1=COLUMN ";C2;",X2=COLUMN ";C3
  591. 5870  IF C9=4 THEN LPRINT"Y=COLUMN ";C1;", X1=COLUMN ";C2;", X2=COLUMN ";C3;", X3=COLUMN ";C4
  592. 5880  LPRINT "AVERAGE Y VALUE =";YAVE
  593. 5890  LPRINT"AVERAGE X1 VALUE=";X1AVE
  594. 5900  LPRINT"AVERAGE X2 VALUE=";X2AVE
  595. 5910  IF C9=4 THEN LPRINT"AVERAGE X3 VALUE=";X3AVE
  596. 5920  LPRINT"SLOPE B1=";SLOPE1
  597. 5930  LPRINT"SLOPE B2=";SLOPE2
  598. 5940  IF C9=4 THEN LPRINT"SLOPE B3=";SLOPE3
  599. 5950  LPRINT"VARIANCE OF Y=";VARY
  600. 5960  LPRINT"VARIANCE OF B1=";VARB1
  601. 5970  LPRINT"VAARIANCE OF B2=";VARB2
  602. 5980  IF C9=4 THEN LPRINT"VARIANCE OF B3=";VARB3
  603. 5990  LPRINT"STANDARD DEVIATION OF Y=";SDEVY
  604. 6000  LPRINT"STANDARD DEVIATION OF B1=";SDEVB1
  605. 6010  LPRINT"STANDARD DEVIATION OF B2=";SDEVB2
  606. 6020  IF C9=4 THEN LPRINT"STANDARD DEVIATION OF B3=";SDEVB3
  607. 6030  LPRINT"CORRELATION(R^2) OF X1=";SORRB1
  608. 6040  LPRINT"CORRELATION(R^2) OF X2=";SORRB2
  609. 6050  IF C9=4 THEN LPRINT"CORRELATION(R^2) OF X3=";SORRB3
  610. 6060  LPRINT"TOTAL CORRELATION(R^2) OF Y=";SORRY
  611. 6070  LPRINT"STUDENTS-t OF B1=";STB1
  612. 6080  LPRINT"STUDENTS-t OF B2=";STB2
  613. 6090  IF C9=4 THEN LPRINT"STUDENTS-t OF B3=";STB3
  614. 6100  IF C9=3 THEN LPRINT"DEGREES OF FREEDOM ARE=";N-3
  615. 6110  IF C9=4 THEN LPRINT"DEGREES OF FREEDOM ARE=";N-4
  616. 6120  LPRINT"THE FOLLOWING EQUATION REPRESENTS THE DATA:"
  617. 6130  IF C9=3 THEN LPRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2"
  618. 6140  IF C9=4 THEN LPRINT"Y=";INTERCEPT;"+";SLOPE1;"*X1+";SLOPE2;"*X2+";SLOPE3;"*X3"
  619. 6150  GOTO 100
  620.